Some printing systems are split into “host” and “device” portions. The host part is often a print server or a personal computer (PC) device driver, with the device part (e.g. a printer) being a simpler hardware device including a print engine, that performs the actual printing to create the print output. An advantage of these systems is that the printer hardware can be simplified, with some processing off-loaded to the more capable host. The data transferred from the host can be a page description language (PDL) document, bands of rendered pixels, or data in an intermediate format. In such a split system, the printing device can have a lower capability processor with a fixed and comparatively small memory capacity. In general, the source document can be arbitrarily complex, and yet the device has limited and fixed memory available to render the potentially complex drawing instructions of the document. As a result, split printing systems must make various compromises to ensure that the document can be rendered with adequate output quality and in a useful timeframe.
One method of printing in a split system is to render the page to bands of pixels on the host. The bands are compressed before being sent to the print device. If there is not enough room to store the print data on the device, there are several options that can be taken. One option is to perform successively more aggressive compression methods until the data fits in the device. Usually this includes lossy compression methods that discard increasing amounts of data. It can be appreciated that this can degrade the quality of output. A second option is for the device to begin passing data to the print engine before the device has received all the data for a page. While this means that the device can process print data that is larger than the available memory on the device, a disadvantage is that the system must continue to supply data at the rate the data is consumed by the print engine, once output has commenced. If the host or the data transmission cannot maintain this data rate, some printing methods will introduce artefacts if the print head is stopped whilst waiting for more data to be received, while others cannot stop the printer hardware at all.
A second method of printing in a split system is to send the entire source document from the host to the device in PDL format. An advantage of this approach is that the PDL format is generally much smaller than the corresponding pixel rendered data. This makes it much more likely that the document will fit within the device memory. There are several disadvantages to this approach. Firstly, the device needs to be much more capable, in order to process the PDL data. In particular, the amount of working memory required to process an arbitrary PDL document can be quite high, often exceeding the available remaining space in the device, once the document has been received. The executable code in the device will also need to be larger, incurring a higher cost. Finally, as all the processing is being performed in a lower capability device, it is likely that processing times will be greater.
A third method of printing in a split system is for the host to convert the PDL data to intermediate format data, which is then sent to the device. Examples of intermediate formats include display list data and fillmap data. The device is responsible for rendering the intermediate format data to pixels, which are passed to the print engine. An advantage of this method is that the transferred data size is less than the size of the pixel data. Another advantage is that some processing can be offloaded to the host, allowing the device to be lower cost. This method still has the disadvantages that the required space for storage and processing could potentially be larger than is available in the device.